-- @owner: xue-xinyi610
-- @date: 2025/2/20
-- @testpoint: I8XDZ2 原有功能在新需求合入后不受影响，启用用户触发器，执行成功。。

-- 步骤pre 1
drop table if exists test_table;
-- 步骤pre 2
CREATE TABLE test_table (id1 INT, id2 INT, id3 INT, user_id INT);  -- 添加 user_id 列，用于记录哪个用户进行的操作

-- 步骤pre 3
drop function if exists user_trigger_function;
-- 步骤pre 4
-- 创建一个触发器函数，基于用户ID进行相应操作
CREATE FUNCTION user_trigger_function() RETURNS TRIGGER AS
$$
DECLARE
BEGIN
    -- 假设当用户ID为特定值时，更新 test_table 中的数据
    IF NEW.user_id = 1 THEN
        UPDATE test_table SET id2 = 10 WHERE id1 = 1;
    ELSE
        UPDATE test_table SET id2 = 5 WHERE id1 = 1;
    END IF;
    RETURN NEW;
END
$$ LANGUAGE PLPGSQL;/

-- 步骤pre 5
drop trigger if exists user_trigger ON test_table;
-- 步骤pre 6
-- 创建一个触发器，基于用户ID进行操作
CREATE TRIGGER user_trigger
BEFORE INSERT ON test_table
EXECUTE PROCEDURE user_trigger_function();/

-- 步骤pre 7
alter table test_table disable trigger user_trigger;

-- 步骤test 1
alter table test_table enable trigger user_trigger;

-- 步骤post 1
drop trigger user_trigger on test_table;

-- 步骤post 2
drop function user_trigger_function;

-- 步骤post 3
drop table test_table;
